//显示1234
//头文件:
#include <reg52.h>

//变量定义:
unsigned char table[]=
    		{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
					//表：共阳数码管 0-9 
//引脚定义:		
sbit SMG_q = P1^0;	//定义数码管阳级控制脚（千位）
sbit SMG_b = P1^1;	//定义数码管阳级控制脚（百位）
sbit SMG_s = P1^2;	//定义数码管阳级控制脚（十位）
sbit SMG_g = P1^3;	//定义数码管阳级控制脚（个位）

//函数声明:
void delay(void); //延时子函时

//主函数，C语言的入口函数:		
void main(void)  
{
	unsigned char i=0;	//作为查表的索引号
	while(1)			//不停的循环扫描,不扫描则不显示或显示不正确，即为动态显示,
	{	//数码管显示 1234，可自行修改
		SMG_q=0;		//选择千位数码管
		P0=table[1];	//查找"1"定义好的数码管段值与P0口输出，显示相应的1
		delay();		//加入短暂延时
		P0=0XFF;		//清除数码管显示，因是共阳型，所以不是0
		SMG_q=1;		//关闭千位数码管

		SMG_b=0;		//选择百位数码管
		P0=table[2];	//查找"2"定义好的数码管段值与P0口输出，显示相应的2
		delay();		//加入短暂延时
		P0=0XFF;		//清除数码管显示，因是共阳型，所以不是0
		SMG_b=1;		//关闭百位数码管
		
		SMG_s=0;		//选择十位数码管
		P0=table[3];	//查找"2"定义好的数码管段值与P0口输出，显示相应的2
		delay();		//加入短暂延时
		P0=0XFF;		//清除数码管显示，因是共阳型，所以不是0
		SMG_s=1;		//关闭十位数码管

		SMG_g=0;		//选择个位数码管
		P0=table[4];	//查找"2"定义好的数码管段值与P0口输出，显示相应的2
		delay();		//加入短暂延时
		P0=0XFF;		//清除数码管显示，因是共阳型，所以不是0
		SMG_g=1;		//关闭个位数码管
	}
}

//延时子函数,短暂延时
void delay(void){		
	unsigned char i=10;
	while(i--);
}
